#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project ：api_testing 
@File    ：allure_handle.py
@IDE     ：PyCharm 
@Author  ：future76
@Date    ：2024/6/25 14:48 
@Desc    ：allure操作
"""
# 标准库导入
import os
import shutil
# 第三方库导入
import allure
# 本地应用/模块导入


def dynamic_title(CaseData):
    '''动态生成标题'''
    # allure.dynamic.title(data[11])

    # 如果存在自定义标题
    if CaseData["caseName"] is not None:
        # 动态生成标题
        allure.dynamic.title(CaseData["caseName"])

    if CaseData["featureName"] is not None:
        # 动态获取feature模块名
        allure.dynamic.feature(CaseData["featureName"])


def generate_report(path_config):
    '''
    allure报告生成
    :param config:
    :return:
    '''
    # 构建 cd 路径 | alllure generate -c 临时报告路径 -o 正式报告路径
    cmd = f" cd {path_config.allure_path_bin} | allure generate -c {path_config.allure_temp_path} -o {path_config.allure_report_path}"
    # 通过os.system将cmd在cmd命令窗口运行
    os.system(cmd)
    # return path_config.allure_path_bin,path_config.allure_temp_path,path_config.allure_report_path


def tendency_chart(config):
    '''
    趋势图
    :param config:
    :return:
    '''
    # report报告的路径
    ALLURE_REPORT_HISTORY = os.path.join(config.allure_report_path, "history")
    # temp的路径
    ALLURE_TEMP_HISTORY = os.path.join(config.allure_temp_path, "history")
    # 首先需要删除temp目录下存在的history
    if os.path.exists(ALLURE_TEMP_HISTORY):
        shutil.rmtree(ALLURE_TEMP_HISTORY)
    # 从report目录中。复制history目录树到 temp的hisotry
    shutil.copytree(ALLURE_REPORT_HISTORY, ALLURE_TEMP_HISTORY)